package com.solution.wx.my.service;

import java.text.DecimalFormat;
import java.util.List;
import java.util.Map;

import com.solution.admin.product.entity.ProductEntity;
import com.solution.common.page.PageBean;
import com.solution.common.page.PageParam;
import com.solution.wx.my.entity.UserFavoriteEntity;

/**
 * 商品收藏信息接口service接口层
 * @author xu_cc
 * @date 2017-11-20 11:32:37
 */
public interface UserFavoriteService {

    /**
     * 保存商品收藏信息
     * @param userFavoriteEntity 商品收藏信息实体
     * @return Long 返回插入商品收藏信息记录ID
     * @author xu_cc
     * @date 2017-11-20 11:32:37
     */
    public long saveUserFavorite(UserFavoriteEntity userFavoriteEntity);
    
    
    /**
     * 删除商品收藏信息
     * @param 
     * @return int 返回删除记录条数
     * @author xu_cc
     * @date 2017-11-20 11:32:37
     */
    public int deleteUserFavoriteById(long id);
    
    
    /**
     * 根据ID查询商品收藏信息
     * @param id 商品收藏信息id
     * @return UserFavoriteEntity 商品收藏信息对象
     * @author xu_cc
     * @date 2017-11-20 11:32:37
     */
    public UserFavoriteEntity getUserFavoriteById(Long id);

    /**
     * 更新商品收藏信息
     * @param UserFavoriteEntity 商品收藏信息对象
     * @return int 更新是否成功，>1代表更新成功
     * @author xu_cc
     * @date 2017-11-20 11:32:37
     */
    public int updateUserFavorite(UserFavoriteEntity userFavoriteEntity);

    /**
     * 分页查询商品收藏信息
     * @param pageParam 分页参数
     * @param paramMap 查询参数
     * @return PageBean 分页参数和分页数据
     * @author xu_cc
     * @date 2017-11-20 11:32:37
     */
    public PageBean listUserFavoritePage(PageParam pageParam, Map<String, Object> paramMap);
    
    /**
     * 根据条件查询商品收藏信息
     * @param param
     * @return 商品收藏信息列表
     * @author xu_cc
     * @date 2017-11-20 11:32:37
     */
    public List<UserFavoriteEntity> listUserFavorite(Map<String, Object> param);
    
    
    /**
     * 验证是否收藏 userCode:[用户编码]<br>
     * productId:[商品ID]<br>
     * productSpecCompositionId:[规格id，可为空]<br>
     * 
     * @param param
     * @return int
     * @author xu_cc
     * @throws Exception
     *             exception
     * @Date 创建时间：2017年11月20日 下午3:01:14
     */
    public Long getCountByUserCodeAndProductId(String userCode, Long productId, Long productSpecCompositionId);
    
	/**
	 * 格式化商品价格
	 * @param productList
	 */
    public void formatProductPrice(List<ProductEntity> productList);
}
